1. Field of the Invention
The present invention relates generally to the field of computing technology, and more particularly, to domain validation testing performed for Small Computer System Interface (xe2x80x9cSCSIxe2x80x9d) devices connected to a SCSI bus.
2. Description of the Related Art
Today, many computer systems implement Small Computer System Interface (xe2x80x9cSCSIxe2x80x9d) connections to provide the fastest and most versatile manner of communication between computer systems and their associated peripheral devices. Implementing SCSI technology has enabled computer users to connect a wide variety of internal and external peripheral devices to personal computers. Typically, for a SCSI connection, a single SCSI host adapter (also known as SCSI card or SCSI controller) is plugged to one expansion slot on the peripheral component interconnect (PCI) bus. Normally, up to 7 (or 15 for dual channel SCSI) peripheral devices (also known as SCSI devices) are connected to a single SCSI host adapter card and are daisy chained to one another creating a SCSI bus (also known as a SCSI domain). As each of the SCSI devices on the SCSI domain is installed, depending on its priority, each SCSI device is assigned a unique identification (ID) number ranging from 0 to 6 and 8 to 15. Having the highest priority, the SCSI host adapter is assigned identification number 7. Generally, a single SCSI bus may include a SCSI host adapter and a plurality of SCSI devices, and each device may be capable of supporting a different data transfer rate. Obviously, in order to establish proper communication, each SCSI host adapter must ascertain the data transfer rate each SCSI device is capable of supporting.
Presently, a process called xe2x80x9cnegotiationxe2x80x9d is implemented by SCSI host adapters to determine the speed supported by each of SCSI devices. This process is performed by an initiator (normally, the SCSI host adapter) at the time the computer system is powered up. Specifically, during the booting-up of the computer system, the system BIOS executes a boot program during which a series of system checks determine the location, number, and identity of various devices connected to the computer system. As the SCSI host adapter card is one of such devices, the system BIOS passes control to an option ROM BIOS chip on the SCSI host adapter card. Once invoked, the option ROM BIOS scans the SCSI bus to ascertain the identity of each SCSI device on the SCSI bus.
During the negotiation process, the initiator/SCSI host adapter interrogates each of its targets/SCSI devices on the SCSI bus determining the specific speed supported by each of the SCSI devices. Thereafter, the SCSI host adapter records the maximum transfer speed claimed to be supported by each of SCSI devices, and subsequently uses these speeds to access each of the associated SCSI devices during normal operation. Although the negotiation protocol works in theory, in certain situations, the negotiated speeds may not be trusted. In practice, transferring data using the negotiated speed may be hindered for several reasons. These reasons include, for example, implementing too long, inferior, or damaged cables, improper termination, damaged SCSI bus transceivers, narrow cabling between wide initiator SCSI host adapters, expanders being incapable of supporting the negotiated data transfer scheme, etc. As these drawbacks are manifested in the form of data errors or reliability problems, a domain validation (xe2x80x9cDVxe2x80x9d) testing feature has been introduced to improve the negotiation process.
Domain validation testing adds a verification step to the normal negotiation procedure performed during the booting-up of the computer system. Subsequent to the completion of each initiator/target negotiation, the domain validation testing performed during the booting-up of the computer system ensures that each initiator and target can actually transfer data at the negotiated speed. If it is determined that the negotiated data transfer speed is not achievable, a signal is sent to the SCSI host adapter to renegotiate with the target so as to select a data transfer speed that is lower. Ideally, the renegotiation/testing cycle should continue until a suitable data transfer speed is achieved or until all possibilities are exhausted. However, due to the advances in the art, less and less time can be allocated to domain validation testing during boot up.
Particularly, as computer manufacturers push for faster and faster boot initiatives, less and less time can be allocated to the domain validation testing of the SCSI buses during the booting-up process. In achieving this, the domain validation testing is significantly cut back or simplified, thus creating a variety of problems. For instance, in certain situations, decreasing the domain validation testing may cause a target""s speed to be validated at a higher speed wherein communication is not reliable, thus lowering data integrity. In another situation, despite both initiator and target being capable of supporting a certain speed, the data transfer rate of the SCSI device may fall back to a lower transfer rate, frustrating the users. In a different scenario the host adapter may be scanning the SCSI bus when all the computer system components are not yet fully up and running. In these situations, the targeted device may be validated at a higher speed wherein communication is not reliable. In other situations, devices emitting electrical noise ultimately interfere with the fastest validated SCSI speed causing improper validation.
In view of the foregoing, there is a need for a new methodology and apparatus capable of providing computer users an opportunity to perform an unlimited, and extensive domain validation testing of devices connected to SCSI buses.
Broadly speaking, the present invention fills these needs by providing an apparatus and methods for performing unlimited and extensive domain validation testing of Small Computer Interface System (SCSI) connections when the computer system is operational. As used herein, operational refers to a state where a computer has completed a boot operation and all working devices connected to the computer (e.g., peripheral devices) have been initiated and validated for operation. Preferably, the domain validation utility of the present invention performs the domain validation testing subsequent to the booting-up of the computer system, thus enabling a user to perform unlimited and extensive testing of the SCSI devices. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, or a method. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for performing domain validation testing of SCSI devices connected to a SCSI bus is disclosed. The method includes booting up a computer system having a SCSI device connected to the SCSI bus. The method also includes launching a domain validation utility after booting up of the computer system is complete and selecting a set of domain validation parameters using the domain validation utility. Further included in the method is issuing a domain validation command implementing the set of domain validation parameters. Performing the domain validation of the SCSI device is designed to enable validation of an optimum data transfer speed of the SCSI device over the SCSI bus.
In another embodiment, a method for implementing domain validation to ensure integrity of data transfers between devices on a SCSI bus is disclosed. The method includes booting-up a computer to normal operating system operation and launching a domain validation utility. Further included is setting options for domain validation between an initiator and a target using a domain validation utility interface by selecting a parameter for each option. The method also includes running the domain validation utility using the parameters and analyzing a result. When the result indicates less than optimum operation of the target, an adjustment is made in a negotiation speed parameter so as to establish an optimum data transfer speed between the initiator and the target over the SCSI bus.
In yet another embodiment, a method for implementing a domain validation utility to perform on-demand domain validation of a SCSI device connected to a SCSI bus, thus ensuring the integrity of data transferred between a SCSI host adapter and the SCSI device is disclosed. The method includes setting options using a domain validation utility interface that loads after boot up of a computer system that is connected to the SCSI bus. Setting the options includes selecting an initiator parameter, a target parameter, a data pattern parameter, a negotiation speed parameter, and an iteration number parameter. The initiator parameter is selected from an initiator option designed to include a set of initiator parameters and the target parameter is selected from a target option designed to include a set of target parameters. The data pattern parameter is selected from a data pattern option designed to include a set of data pattern parameters. The negotiation speed parameter is selected from a negotiation speed option designed to include a set of negotiation speed parameters and the iteration number parameter is selected from an iteration number option designed to include a set of iteration number parameters. The method also includes executing domain validation testing using the set parameters.
The advantages of the present invention are numerous. Most notably, the domain validation utility of the present invention performs domain validation testing subsequent to the booting-up of the computer system and when the computer system is operational. In contrast to boot-time domain validation of the prior art, the embodiments of the present invention can perform unlimited and extensive domain validation testing of the SCSI devices implementing a plurality of data patterns and iterations. Consequently, the domain validation utility of the present invention detects and bypasses errors undetected or caused by limiting the domain validation testing performed during the booting-up of the computer.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.